package 课程设计报告_hb_7_2;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

import org.junit.Test;

/**
 * @author Jiang Zhiyan
 *
 * 2021年7月2日 上午10:48:03
 *
 */

/**
 *从控制台输入一个字符串，统计字符串出现的次数，根据出现的次数进行降幂输出
 */
public class TestEx {
         @Test
         public void testCounter() {
        	 counter("a22333");
         }
         public void counter(String data) {
        	 Map <Character ,Integer> maps = new HashMap<>();
        	 for(int i=0;i<data.length();i++) {
        		 char c= data.charAt(i);
        		 Integer count = maps.get(c);
        		 count = count ==  null ?1:count +1;
        		 maps.put(c, count);
        	 }
//        	 获得list集合
        	 Set<Entry<Character ,Integer>> entrySet = maps.entrySet();
//        	 通过ArrayList的构造器将set集合转成List集合、
        	 List <Entry<Character,Integer>> list = new ArrayList<>(entrySet);
        	 Collections.sort(list,new Comparator<Entry<Character ,Integer>>(){

				@Override
				public int compare(Entry<Character, Integer> o1, Entry<Character, Integer> o2) {
					// TODO Auto-generated method stub
					return o2.getValue() -o1.getValue();
				}
        		 
        	 });
        	 System.out.println(list);
         }
}
